#ifndef BSP_STEP_MOTOR_H
#define BSP_STEP_MOTOR_H

#include "gpio.h"
#include "main.h"

/*脉宽(转速) us*/
#define step_time 35
/*抬升转速*/
#define Lift_step_time 20
/*转动间隙 ms */
#define stop_time 0

/*90° -> 800个脉冲*/
/*180° -> 1600个脉冲*/
/*360° -> 3600个脉冲*/
#define Cycle_90 800
#define Cycle_180 1600
#define Cycle_360 3200

/*
 *驱动器细分 16
 *两相步进电机步距角 1.8°/脉冲
 */

typedef struct _motor_pin
{
    GPIO_TypeDef *Pull_GPIO;
    uint16_t Pull_GPIO_PIN;

    GPIO_TypeDef *Direct_GPIO;
    uint16_t Direct_GPIO_PIN;

} Step_Motor_Tydef;

//顺时针90
void clockwise_90(Step_Motor_Tydef);
//逆时针90
void counterclockwise_90(Step_Motor_Tydef);
//顺时针180
void clockwise_180(Step_Motor_Tydef);
//逆时针180
void counterclockwise_180(Step_Motor_Tydef);
//顺时针一周
void clockwise_360(Step_Motor_Tydef);
//逆时针一周
void counterclockwise_360(Step_Motor_Tydef);

// us延时函数
void delay_us(uint32_t);

#endif
